home *** CD-ROM | disk | FTP | other *** search
/ IRIX Patches 1995 June / SGI IRIX Patches 1995 Jun.iso / 5.3_patches / patchSG0000499 / patchSG0000499.idb / usr / include / abi / X11 / extensions / XKBproto.h.z / XKBproto.h
Encoding:
C/C++ Source or Header  |  1995-06-12  |  23.1 KB  |  988 lines

  1. /* $XConsortium: XKBproto.h,v 1.13 94/04/02 14:19:54 erik Exp $ */
  2. /************************************************************
  3. Copyright (c) 1993 by Silicon Graphics Computer Systems, Inc.
  4.  
  5. Permission to use, copy, modify, and distribute this
  6. software and its documentation for any purpose and without
  7. fee is hereby granted, provided that the above copyright
  8. notice appear in all copies and that both that copyright
  9. notice and this permission notice appear in supporting
  10. documentation, and that the name of Silicon Graphics not be 
  11. used in advertising or publicity pertaining to distribution 
  12. of the software without specific prior written permission.
  13. Silicon Graphics makes no representation about the suitability 
  14. of this software for any purpose. It is provided "as is"
  15. without any express or implied warranty.
  16.  
  17. SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS 
  18. SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 
  19. AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
  20. GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL 
  21. DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, 
  22. DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 
  23. OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION  WITH
  24. THE USE OR PERFORMANCE OF THIS SOFTWARE.
  25.  
  26. ********************************************************/
  27.  
  28. #ifndef _XKBPROTO_H_
  29. #define    _XKBPROTO_H_
  30.  
  31. #include <X11/Xmd.h>
  32.  
  33. #define Window CARD32
  34. #define Atom CARD32
  35. #define Time CARD32
  36. #define KeyCode CARD8
  37. #define KeySym CARD32
  38.  
  39. #define    XkbPaddedSize(n)    ((((unsigned)(n)+3) >> 2) << 2)
  40.  
  41. typedef struct _xkbUseExtension {
  42.     CARD8    reqType;
  43.     CARD8    xkbReqType;    /* always X_KBUseExtension */
  44.     CARD16    length B16;
  45.     CARD16    wantedMajor B16;
  46.     CARD16    wantedMinor B16;
  47. } xkbUseExtensionReq;
  48. #define    sz_xkbUseExtensionReq    8
  49.  
  50. typedef struct _xkbUseExtensionReply {
  51.     BYTE    type;        /* X_Reply */
  52.     BOOL    supported;
  53.     CARD16    sequenceNumber B16;
  54.     CARD32    length B32;
  55.     CARD16    serverMajor B16;
  56.     CARD16    serverMinor B16;
  57.     CARD32    pad1 B32;
  58.     CARD32    pad2 B32;
  59.     CARD32    pad3 B32;
  60.     CARD32    pad4 B32;
  61.     CARD32    pad5 B32;
  62. } xkbUseExtensionReply;
  63. #define    sz_xkbUseExtensionReply    32
  64.  
  65. typedef    struct _xkbSelectEvents {
  66.     CARD8    reqType;
  67.     CARD8    xkbReqType;    /* X_KBSelectEvents */
  68.     CARD16    length B16;
  69.     CARD16    deviceSpec B16;
  70.     CARD16    affectWhich B16;
  71.     CARD16    clear B16;
  72.     CARD16    selectAll B16;
  73.     CARD16    affectMap B16;
  74.     CARD16    map B16;
  75. } xkbSelectEventsReq;
  76. #define    sz_xkbSelectEventsReq    16
  77.  
  78. #ifdef NEED_EVENTS
  79.  
  80. typedef struct _xkbSendEvent {
  81.     CARD8    reqType;
  82.     CARD8    xkbReqType;    /* X_KBSendEvent */
  83.     CARD16    length B16;
  84.     BOOL    propagate;
  85.     BOOL    synthesizeClick;
  86.     CARD16    pad B16;
  87.     CARD32    destination;    /* Window */
  88.     CARD32    eventMask B32;
  89.     xEvent    event;
  90. } xkbSendEventReq;
  91. #define    sz_xkbSendEventReq    48
  92.  
  93. #endif /* NEED_EVENTS */
  94.  
  95. typedef struct _xkbBell {
  96.     CARD8    reqType;
  97.     CARD8    xkbReqType;    /* X_KBBell */
  98.     CARD16    length B16;
  99.     CARD16    deviceSpec B16;
  100.     CARD8    bellClass;
  101.     CARD8    bellID;
  102.     INT8    percent;
  103.     BOOL    override;
  104.     CARD16    pad2 B16;
  105.     Atom    name B32;
  106.     Window    window B32;
  107. } xkbBellReq;
  108. #define    sz_xkbBellReq        20
  109.  
  110. typedef struct _xkbGetState {
  111.     CARD8        reqType;
  112.     CARD8        xkbReqType;    /* always X_KBGetState */
  113.     CARD16        length B16;
  114.     CARD16        deviceSpec B16;
  115.     CARD16        pad B16;
  116. } xkbGetStateReq;
  117. #define    sz_xkbGetStateReq    8
  118.  
  119. typedef    struct _xkbGetStateReply {
  120.     BYTE    type;
  121.     BYTE    deviceID;
  122.     CARD16    sequenceNumber B16;
  123.     CARD32    length B32;
  124.     CARD32    pad1 B32;
  125.     CARD8    mods;
  126.     CARD8    baseMods;
  127.     CARD8    latchedMods;
  128.     CARD8    lockedMods;
  129.     CARD8    group;
  130.     CARD8    baseGroup;
  131.     CARD8    latchedGroup;
  132.     CARD8    lockedGroup;
  133.     CARD8    compatState;
  134.     CARD8    pad2;
  135.     CARD16    pad3 B16;
  136.     CARD32    pad4 B32;
  137.     CARD32    pad5 B32;
  138. } xkbGetStateReply;
  139. #define    sz_xkbGetStateReply    32
  140.  
  141. typedef struct _xkbLatchLockState {
  142.     CARD8    reqType;
  143.     CARD8    xkbReqType;    /* always X_KBLatchLockState */
  144.     CARD16    length B16;
  145.     CARD16    deviceSpec B16;
  146.     CARD8    affectModLocks;
  147.     CARD8    modLocks;
  148.     BOOL    lockGroup;
  149.     CARD8    groupLock;
  150.     CARD8    affectModLatches;
  151.     CARD8    modLatches;
  152.     BOOL    latchGroup;
  153.     CARD8    groupLatch;
  154.     CARD16    pad B16;
  155. } xkbLatchLockStateReq;
  156. #define    sz_xkbLatchLockStateReq        16
  157.  
  158. typedef struct _xkbGetControls {
  159.     CARD8    reqType;
  160.     CARD8    xkbReqType;    /* always X_KBGetControls */
  161.     CARD16    length B16;
  162.     CARD16    deviceSpec B16;
  163.     CARD16    pad B16;
  164. } xkbGetControlsReq;
  165. #define    sz_xkbGetControlsReq    8
  166.  
  167. typedef struct _xkbGetControlsReply {
  168.     BYTE    type;        /* X_Reply */
  169.     CARD8    deviceID;
  170.     CARD16    sequenceNumber B16;
  171.     CARD32    length B32;
  172.     CARD8    mouseKeysDfltBtn;
  173.     CARD8    numGroups;
  174.     CARD8    internalMods B16;
  175.     CARD8    ignoreLockMods B16;
  176.     CARD8    internalRealMods;
  177.     CARD8    ignoreLockRealMods;
  178.     CARD16    internalVirtualMods B16;
  179.     CARD16    ignoreLockVirtualMods B16;
  180.     CARD8    accessXOptions;
  181.     CARD8    pad1;
  182.     CARD32    enabledControls B32;
  183.     CARD16    repeatDelay B16;
  184.     CARD16    repeatInterval B16;
  185.     CARD16    slowKeysDelay B16;
  186.     CARD16    debounceDelay B16;
  187.     CARD16    mouseKeysDelay B16;
  188.     CARD16    mouseKeysInterval B16;
  189.     CARD16    mouseKeysTimeToMax B16;
  190.     CARD16    mouseKeysMaxSpeed B16;
  191.     CARD16    mouseKeysCurve B16;
  192.     CARD16    accessXTimeout B16;
  193.     CARD32    accessXTimeoutMask B32;
  194. } xkbGetControlsReply;
  195. #define    sz_xkbGetControlsReply    48
  196.  
  197. typedef struct _xkbSetControls {
  198.     CARD8    reqType;
  199.     CARD8    xkbReqType;    /* always X_KBSetControls */
  200.     CARD16    length B16;
  201.     CARD16    deviceSpec B16;
  202.     CARD8    affectInternalRealMods;
  203.     CARD8    internalRealMods;
  204.     CARD8    affectIgnoreLockRealMods;
  205.     CARD8    ignoreLockRealMods;
  206.     CARD16    affectInternalVirtualMods B16;
  207.     CARD16    internalVirtualMods B16;
  208.     CARD16    affectIgnoreLockVirtualMods B16;
  209.     CARD16    ignoreLockVirtualMods B16;
  210.     CARD8    mouseKeysDfltBtn;
  211.     CARD8    accessXOptions;
  212.     CARD32    affectEnabledControls B32;
  213.     CARD32    enabledControls B32;
  214.     CARD32    changeControls B32;
  215.     CARD16    repeatDelay B16;
  216.     CARD16    repeatInterval B16;
  217.     CARD16    slowKeysDelay B16;
  218.     CARD16    debounceDelay B16;
  219.     CARD16    mouseKeysDelay B16;
  220.     CARD16    mouseKeysInterval B16;
  221.     CARD16    mouseKeysTimeToMax B16;
  222.     CARD16    mouseKeysMaxSpeed B16;
  223.     CARD16    mouseKeysCurve B16;
  224.     CARD16    accessXTimeout B16;
  225.     CARD32    accessXTimeoutMask B32;
  226. } xkbSetControlsReq;
  227. #define    sz_xkbSetControlsReq    56
  228.  
  229. typedef    struct _xkbKTMapEntryWireDesc {
  230.     BOOL    active;
  231.     CARD8    mask;
  232.     CARD8    level;
  233.     CARD8    realMods;
  234.     CARD16    virtualMods B16;
  235.     CARD16    pad B16;
  236. } xkbKTMapEntryWireDesc;
  237. #define sz_xkbKTMapEntryWireDesc    8
  238.  
  239. typedef struct _xkbKTSetMapEntryWireDesc {
  240.     CARD8    level;
  241.     CARD8    realMods;
  242.     CARD16    virtualMods B16;
  243. } xkbKTSetMapEntryWireDesc;
  244. #define    sz_xkbKTSetMapEntryWireDesc    4
  245.  
  246. typedef struct _xkbKTPreserveWireDesc {
  247.     CARD8    mask;        /* GetMap only */
  248.     CARD8    realMods;
  249.     CARD16    virtualMods B16;
  250. } xkbKTPreserveWireDesc;
  251. #define    sz_xkbKTPreserveWireDesc    4
  252.  
  253. typedef struct _xkbKeyTypeWireDesc {
  254.     CARD8    mask;
  255.     CARD8    realMods;
  256.     CARD16    virtualMods B16;
  257.     CARD8    groupWidth;
  258.     CARD8    nMapEntries;
  259.     BOOL    preserve;
  260.     CARD8    pad;
  261. } xkbKeyTypeWireDesc;
  262. #define    sz_xkbKeyTypeWireDesc    8
  263.  
  264. typedef struct _xkbSymMapWireDesc {
  265.     CARD8    ktIndex;
  266.     CARD8    groupInfo;
  267.     CARD16    nSyms B16;
  268. } xkbSymMapWireDesc;
  269. #define    sz_xkbSymMapWireDesc    4
  270.  
  271. typedef struct _xkbGetMap {
  272.     CARD8    reqType;
  273.     CARD8    xkbReqType;    /* always X_KBGetMap */
  274.     CARD16    length B16;
  275.     CARD16    deviceSpec B16;
  276.     CARD16    full B16;
  277.     CARD16    partial B16;
  278.     CARD8    firstType;
  279.     CARD8    nTypes;
  280.     KeyCode    firstKeySym;
  281.     CARD8    nKeySyms;
  282.     KeyCode    firstKeyAction;
  283.     CARD8    nKeyActions;
  284.     KeyCode    firstKeyBehavior;
  285.     CARD8    nKeyBehaviors;
  286.     CARD16    virtualMods B16;
  287.     KeyCode    firstKeyExplicit;
  288.     CARD8    nKeyExplicit;
  289.     CARD16    pad B16;
  290. } xkbGetMapReq;
  291. #define    sz_xkbGetMapReq    24
  292.  
  293. typedef struct _xkbGetMapReply {
  294.     CARD8    type;        /* always X_Reply */
  295.     CARD8    deviceID;
  296.     CARD16    sequenceNumber B16;
  297.     CARD32    length B32;
  298.     KeyCode    minKeyCode;
  299.     KeyCode    maxKeyCode;
  300.     CARD16    present B16;
  301.     CARD8    firstType;
  302.     CARD8    nTypes;
  303.     CARD8    totalTypes;
  304.     KeyCode    firstKeySym;
  305.     CARD8    nKeySyms;
  306.     KeyCode    firstKeyAction;
  307.     CARD8    nKeyActions;
  308.     CARD8    totalKeyBehaviors;
  309.     CARD16    virtualMods B16;
  310.     CARD16    totalSyms B16;
  311.     CARD16    totalActions B16;
  312.     CARD8    totalKeyExplicit;
  313.     CARD8    pad1;
  314.     CARD32    pad2 B32;
  315. } xkbGetMapReply;
  316. #define    sz_xkbGetMapReply        32
  317.  
  318. typedef struct _xkbSetMap {
  319.     CARD8    reqType;
  320.     CARD8    xkbReqType;    /* always X_KBSetMap */
  321.     CARD16    length B16;
  322.     CARD16    deviceSpec B16;
  323.     CARD16    present B16;
  324.     CARD16    resize B16;
  325.     CARD8    firstType;
  326.     CARD8    nTypes;
  327.     KeyCode    firstKeySym;
  328.     CARD8    nKeySyms;
  329.     KeyCode    firstKeyAction;
  330.     CARD8    nKeyActions;
  331.     CARD16    virtualMods B16;
  332.     CARD8    totalKeyBehaviors;
  333.     CARD8    totalKeyExplicit;
  334.     CARD16    totalSyms B16;
  335.     CARD16    totalActions B16;
  336. } xkbSetMapReq;
  337. #define    sz_xkbSetMapReq    24
  338.  
  339. typedef struct _xkbBehaviorWireDesc {
  340.     CARD8    key;
  341.     CARD8    type;
  342.     CARD8    data;
  343.     CARD8    pad;
  344. } xkbBehaviorWireDesc;
  345. #define    sz_xkbBehaviorWireDesc    4
  346.  
  347. typedef    struct _xkbActionWireDesc {
  348.     CARD8    type;
  349.     CARD8    data[7];
  350. } xkbActionWireDesc;
  351. #define    sz_xkbActionWireDesc    8
  352.  
  353. typedef struct _xkbModCompatWireDesc {
  354.     CARD8    mods;
  355.     CARD8    groups;
  356. } xkbModCompatWireDesc;
  357. #define    sz_xkbModCompatWireDesc    2
  358.  
  359. typedef struct _xkbSymInterpretWireDesc {
  360.     CARD32        sym;
  361.     CARD8        mods;
  362.     CARD8        match;
  363.     CARD8        virtualMod;
  364.     CARD8        flags;
  365.     xkbActionWireDesc    act;
  366. } xkbSymInterpretWireDesc;
  367. #define    sz_xkbSymInterpretWireDesc    16
  368.  
  369. typedef struct _xkbGetCompatMap {
  370.     CARD8    reqType;
  371.     CARD8    xkbReqType;    /* always X_KBGetCompatMap */
  372.     CARD16    length B16;
  373.     CARD16    deviceSpec B16;
  374.     CARD16    virtualMods;
  375.     CARD8    mods;
  376.     BOOL    getAllSI;
  377.     CARD16    firstSI B16;
  378.     CARD16    nSI B16;
  379.     CARD16    pad;
  380. } xkbGetCompatMapReq;
  381. #define    sz_xkbGetCompatMapReq    16
  382.  
  383. typedef struct _xkbGetCompatMapReply {
  384.     CARD8    type;        /* always X_Reply */
  385.     CARD8    deviceID;
  386.     CARD16    sequenceNumber B16;
  387.     CARD32    length B32;
  388.     CARD8    pad1;
  389.     CARD8    mods;
  390.     CARD16    virtualMods B16;
  391.     CARD16    firstSI B16;
  392.     CARD16    nSI B16;
  393.     CARD16    nTotalSI B16;
  394.     CARD16    pad2 B16;
  395.     CARD32    pad3 B32;
  396.     CARD32    pad4 B32;
  397.     CARD32    pad5 B32;
  398. } xkbGetCompatMapReply;
  399. #define    sz_xkbGetCompatMapReply        32
  400.  
  401. typedef struct _xkbSetCompatMap {
  402.     CARD8    reqType;
  403.     CARD8    xkbReqType;    /* always X_KBSetCompatMap */
  404.     CARD16    length B16;
  405.     CARD16    deviceSpec B16;
  406.     BOOL    recomputeActions;
  407.     BOOL    truncateSI;
  408.     CARD8    pad1;
  409.     CARD8    mods;
  410.     CARD16    virtualMods B16;
  411.     CARD16    firstSI B16;
  412.     CARD16    nSI B16;
  413. } xkbSetCompatMapReq;
  414. #define    sz_xkbSetCompatMapReq    16
  415.  
  416. typedef struct _xkbGetIndicatorState {
  417.     CARD8    reqType;
  418.     CARD8    xkbReqType;    /* always X_KBGetIndicatorState */
  419.     CARD16    length B16;
  420.     CARD16    deviceSpec B16;
  421.     CARD16    pad B16;
  422. } xkbGetIndicatorStateReq;
  423. #define    sz_xkbGetIndicatorStateReq    8
  424.  
  425. typedef struct _xkbGetIndicatorStateReply {
  426.     CARD8    type;        /* always X_Reply */
  427.     CARD8    deviceID;
  428.     CARD16    sequenceNumber B16;
  429.     CARD32    length B32;
  430.     CARD32    state B32;
  431.     CARD32    pad1 B32;
  432.     CARD32    pad2 B32;
  433.     CARD32    pad3 B32;
  434.     CARD32    pad4 B32;
  435.     CARD32    pad5 B32;
  436. } xkbGetIndicatorStateReply;
  437. #define    sz_xkbGetIndicatorStateReply    32
  438.  
  439. typedef struct _xkbGetIndicatorMap {
  440.     CARD8    reqType;
  441.     CARD8    xkbReqType;    /* always X_KBGetIndicatorMap */
  442.     CARD16    length B16;
  443.     CARD16    deviceSpec B16;
  444.     CARD16    pad B16;
  445.     CARD32    which B32;
  446. } xkbGetIndicatorMapReq;
  447. #define    sz_xkbGetIndicatorMapReq    12
  448.  
  449. typedef struct _xkbGetIndicatorMapReply {
  450.     CARD8    type;        /* always X_Reply */
  451.     CARD8    deviceID;
  452.     CARD16    sequenceNumber B16;
  453.     CARD32    length B32;
  454.     CARD32    which B32;
  455.     CARD8    nRealIndicators;
  456.     CARD8    nIndicators;
  457.     CARD16    pad2 B16;
  458.     CARD32    pad3 B32;
  459.     CARD32    pad4 B32;
  460.     CARD32    pad5 B32;
  461.     CARD32    pad6 B32;
  462. } xkbGetIndicatorMapReply;
  463. #define    sz_xkbGetIndicatorMapReply    32
  464.  
  465. typedef struct _xkbIndicatorMapWireDesc {
  466.     CARD8    flags;
  467.     CARD8    whichGroups;
  468.     CARD8    groups;
  469.     CARD8    whichMods;
  470.     CARD8    mods;
  471.     CARD8    realMods;
  472.     CARD16    virtualMods B16;
  473.     CARD32    ctrls B32;
  474. } xkbIndicatorMapWireDesc;
  475. #define    sz_xkbIndicatorMapWireDesc    12
  476.  
  477. typedef struct _xkbSetIndicatorMap {
  478.     CARD8    reqType;
  479.     CARD8    xkbReqType;    /* always X_KBSetIndicatorMap */
  480.     CARD16    length B16;
  481.     CARD16    deviceSpec B16;
  482.     CARD16    pad1 B16;
  483.     CARD32    which B32;
  484. } xkbSetIndicatorMapReq;
  485. #define    sz_xkbSetIndicatorMapReq    12
  486.  
  487. typedef struct _xkbGetNames {
  488.     CARD8    reqType;
  489.     CARD8    xkbReqType;    /* always X_KBGetNames */
  490.     CARD16    length B16;
  491.     CARD16    deviceSpec B16;
  492.     CARD16    pad B16;
  493.     CARD32    which B32;
  494. } xkbGetNamesReq;
  495. #define    sz_xkbGetNamesReq        12
  496.  
  497. typedef    struct _xkbGetNamesReply {
  498.     BYTE    type;
  499.     BYTE    deviceID;
  500.     CARD16    sequenceNumber B16;
  501.     CARD32    length B32;
  502.     CARD32    which B32;
  503.     CARD8    nTypes;
  504.     CARD8    modifiers;
  505.     CARD16    virtualMods B16;
  506.     KeyCode    firstKey;
  507.     CARD8    nKeys;
  508.     CARD8    nRadioGroups;
  509.     CARD8    nCharSets;
  510.     CARD32    indicators B32;
  511.     CARD32    pad1 B32;
  512.     CARD32    pad2 B32;
  513. } xkbGetNamesReply;
  514. #define    sz_xkbGetNamesReply    32
  515.  
  516. typedef struct _xkbSetNames {
  517.     CARD8    reqType;
  518.     CARD8    xkbReqType;    /* always X_KBSetNames */
  519.     CARD16    length B16;
  520.     CARD16    deviceSpec B16;
  521.     CARD16    pad1 B16;
  522.     CARD32    which B32;
  523.     CARD8    firstType;
  524.     CARD8    nTypes;
  525.     CARD8    firstKTLevel;
  526.     CARD8    nKTLevels;
  527.     CARD32    indicators B32;
  528.     CARD8    modifiers;
  529.     CARD8    pad2;
  530.     CARD16    virtualMods B16;
  531.     CARD8    nRadioGroups;
  532.     CARD8    nCharSets;
  533.     KeyCode    firstKey;
  534.     CARD8    nKeys;
  535.     CARD32    resize B32;
  536. } xkbSetNamesReq;
  537. #define    sz_xkbSetNamesReq    32
  538.  
  539. typedef struct _xkbListAlternateSyms {
  540.     CARD8    reqType;
  541.     CARD8    xkbReqType;    /* always X_KBListAlternateSyms */
  542.     CARD16    length B16;
  543.     CARD16    deviceSpec B16;
  544.     CARD16    pad B16;
  545.     Atom    name B32;
  546.     Atom    charset B32;
  547. } xkbListAlternateSymsReq;
  548. #define    sz_xkbListAlternateSymsReq    16
  549.  
  550. typedef struct _xkbListAlternateSymsReply {
  551.     BYTE    type;        /* X_Reply */
  552.     CARD8    deviceID;
  553.     CARD16    sequenceNumber B16;
  554.     CARD32    length B32;
  555.     CARD8    nAlternateSyms;
  556.     CARD8    pad1;
  557.     CARD16    pad2 B16;
  558.     CARD8    indices[20];
  559. } xkbListAlternateSymsReply;
  560. #define sz_xkbListAlternateSymsReply    32
  561.  
  562. typedef struct _xkbGetAlternateSyms {
  563.     CARD8    reqType;
  564.     CARD8    xkbReqType;    /* always X_KBGetAlternateSyms */
  565.     CARD16    length B16;
  566.     CARD16    deviceSpec B16;
  567.     CARD8    index;
  568.     KeyCode    firstKey;
  569.     CARD8    nKeys;
  570.     CARD8    pad1;
  571.     CARD16    pad2 B16;
  572. } xkbGetAlternateSymsReq;
  573. #define    sz_xkbGetAlternateSymsReq        12
  574.  
  575. typedef    struct _xkbGetAlternateSymsReply {
  576.     BYTE    type;
  577.     BYTE    deviceID;
  578.     CARD16    sequenceNumber B16;
  579.     CARD32    length B32;
  580.     Atom    name B32;
  581.     CARD8    index;
  582.     CARD8    nCharSets;
  583.     KeyCode    firstKey;
  584.     CARD8    nKeys;
  585.     CARD16    totalSyms B16;
  586.     CARD16    pad2 B16;
  587.     CARD32    pad3 B32;
  588.     CARD32    pad4 B32;
  589.     CARD32    pad5 B32;
  590. } xkbGetAlternateSymsReply;
  591. #define    sz_xkbGetAlternateSymsReply    32
  592.  
  593. typedef struct _xkbSetAlternateSyms {
  594.     CARD8    reqType;
  595.     CARD8    xkbReqType;    /* always X_KBSetAlternateSyms */
  596.     CARD16    length B16;
  597.     CARD16    deviceSpec B16;
  598.     BOOL    create;
  599.     CARD8    replace;
  600.     CARD16    present B16;
  601.     CARD16    pad1 B16;
  602.     Atom    name B32;
  603.     CARD8    nCharSets;
  604.     KeyCode    firstKey;
  605.     CARD8    nKeys;
  606.     CARD8    pad;
  607. } xkbSetAlternateSymsReq;
  608. #define    sz_xkbSetAlternateSymsReq        20
  609.  
  610. typedef struct _xkbPointWireDesc {
  611.     CARD16    x B16;
  612.     CARD16    y B16;
  613. } xkbPointWireDesc;
  614. #define    sz_xkbPointWireDesc    4
  615.  
  616. typedef struct _xkbShapeWireDesc {
  617.     CARD8    nOutlines;
  618.     CARD8    approxOutline;
  619.     CARD8    primaryOutline;
  620.     CARD8    pad;
  621.     CARD8    name[4];
  622. } xkbShapeWireDesc;
  623. #define    sz_xkbShapeWireDesc    8
  624.  
  625. typedef struct _xkbDoodadWireDesc {
  626.     CARD16    top B16;
  627.     CARD16    left B16;
  628.     CARD8    shape;
  629.     CARD8    color;
  630.     CARD16    angle B16;
  631. } xkbDoodadWireDesc;
  632. #define    sz_xkbDoodadWireDesc    8
  633.  
  634. typedef struct _xkbLabelWireDesc {
  635.     CARD16    baseline B16;
  636.     CARD16    left B16;
  637.     CARD16    angle B16;
  638.     CARD8    color;
  639.     CARD8    length;
  640. } xkbLabelWireDesc;
  641. #define    sz_xkbLabelWireDesc    8
  642.  
  643. typedef struct _xkbKeyWireDesc {
  644.     KeyCode    keycode;
  645.     CARD8    shape;
  646.     CARD8    gap;
  647.     CARD8    color;
  648.     CARD8    name[4];
  649. } xkbKeyWireDesc;
  650. #define    sz_xkbKeyWireDesc    8
  651.  
  652. typedef struct _xkbRowWireDesc {
  653.     CARD16    top B16;
  654.     CARD16    left B16;
  655.     CARD8    nKeys;
  656.     BOOL    vertical;
  657.     CARD16    pad B16;
  658. } xkbRowWireDesc;
  659. #define    sz_xkbRowWireDesc    8
  660.  
  661. typedef struct _xkbSectionWireDesc {
  662.     Atom    name B32;
  663.     CARD16    top B16;
  664.     CARD16    left B16;
  665.     CARD16    width B16;
  666.     CARD16    height B16;
  667.     CARD16    angle B16;
  668.     CARD8    nRows;
  669.     CARD8    nDoodads;
  670. } xkbSectionWireDesc;
  671. #define    sz_xkbSectionWireDesc    16
  672.  
  673. typedef struct _xkbGetGeometry {
  674.     CARD8    reqType;
  675.     CARD8    xkbReqType;    /* always X_KBGetGeometry */
  676.     CARD16    length B16;
  677.     CARD16    deviceSpec B16;
  678.     CARD16    pad B16;
  679.     Atom    name B32;
  680. } xkbGetGeometryReq;
  681. #define    sz_xkbGetGeometryReq    12
  682.  
  683. typedef struct _xkbGetGeometryReply {
  684.     CARD8    type;        /* always X_Reply */
  685.     CARD8    deviceID;
  686.     CARD16    sequenceNumber B16;
  687.     CARD32    length B32;
  688.     Atom    name B32;
  689.     CARD16    width B16;
  690.     CARD16    height B16;
  691.     CARD8    shape;
  692.     CARD8    color;
  693.     CARD8    nShapes;
  694.     CARD8    nSections;
  695.     CARD16    nPoints B16;
  696.     CARD16    nOutlines B16;
  697.     CARD8    nColors;
  698.     CARD8    nDoodads;
  699.     CARD8    nLabels;
  700.     CARD8    nFonts;
  701.     CARD32    pad1 B32;
  702. } xkbGetGeometryReply;
  703. #define    sz_xkbGetGeometryReply    32
  704.  
  705. #define    XkbGMByName        1
  706. #define    XkbGMDescription    2
  707. typedef struct _xkbSetGeometry {
  708.     CARD8    reqType;
  709.     CARD8    xkbReqType;    /* always X_KBSetGeometry */
  710.     CARD16    length B16;
  711.     CARD16    deviceSpec B16;
  712.     CARD8    nShapes;
  713.     CARD8    nSections;
  714.     Atom    name B32;
  715.     CARD16    widthMM B16;
  716.     CARD16    heightMM B16;
  717. } xkbSetGeometryReq;
  718. #define    sz_xkbSetGeometryReq    16
  719.  
  720. #define    XkbNormalLocks    0
  721. #define    XkbDisableLocks    1
  722. #define    XkbLeaveLocks    2
  723. typedef struct _xkbSetDebuggingFlags {
  724.     CARD8    reqType;
  725.     CARD8    xkbReqType;    /* always X_KBSetDebuggingFlags */
  726.     CARD16    length B16;
  727.     CARD16    mask B16;
  728.     CARD16    flags B16;
  729.     CARD16    msgLength B16;
  730.     CARD8    disableLocks;
  731.     CARD8    pad;
  732. } xkbSetDebuggingFlagsReq;
  733. #define    sz_xkbSetDebuggingFlagsReq    12
  734.  
  735. typedef struct _xkbSetDebuggingFlagsReply {
  736.     BYTE    type;        /* X_Reply */
  737.     CARD8    disableLocks;
  738.     CARD16    sequenceNumber B16;
  739.     CARD32    length B32;
  740.     CARD16    currentFlags B16;
  741.     CARD16    pad1 B16;
  742.     CARD32    pad2 B32;
  743.     CARD32    pad3 B32;
  744.     CARD32    pad4 B32;
  745.     CARD32    pad5 B32;
  746.     CARD32    pad6 B32;
  747. } xkbSetDebuggingFlagsReply;
  748. #define    sz_xkbSetDebuggingFlagsReply    32
  749.  
  750.     /*
  751.      * X KEYBOARD EXTENSION EVENT STRUCTURES
  752.      */
  753.  
  754. typedef struct _xkbAnyEvent {
  755.     BYTE    type;
  756.     BYTE    xkbType;
  757.     CARD16    sequenceNumber B16;
  758.     Time    time B32;
  759.     CARD8    deviceID;
  760.     CARD8    pad1;
  761.     CARD16    pad2 B16;
  762.     CARD32    pad3 B32;
  763.     CARD32    pad4 B32;
  764.     CARD32    pad5 B32;
  765.     CARD32    pad6 B32;
  766.     CARD32    pad7 B32;
  767. } xkbAnyEvent;
  768. #define    sz_xkbAnyEvent 32
  769.  
  770. typedef    struct _xkbStateNotify {
  771.     BYTE    type;
  772.     BYTE    xkbType;
  773.     CARD16    sequenceNumber B16;
  774.     Time    time B32;
  775.     CARD8    deviceID;
  776.     CARD8    mods;
  777.     CARD8    baseMods;
  778.     CARD8    latchedMods;
  779.     CARD8    lockedMods;
  780.     CARD8    group;
  781.     CARD8    baseGroup;
  782.     CARD8    latchedGroup;
  783.     CARD8    lockedGroup;
  784.     CARD8    compatState;
  785.     KeyCode    keycode;
  786.     CARD8    eventType;
  787.     CARD8    requestMajor;
  788.     CARD8    requestMinor;
  789.     CARD16    changed B16;
  790.     CARD32    pad1 B32;
  791.     CARD32    pad2 B32;
  792. } xkbStateNotify;
  793. #define    sz_xkbStateNotify    32
  794.  
  795. typedef    struct _xkbMapNotify {
  796.     BYTE    type;
  797.     BYTE    xkbType;
  798.     CARD16    sequenceNumber B16;
  799.     Time    time B32;
  800.     CARD8    pad1;
  801.     CARD8    deviceID;
  802.     CARD16    changed B16;
  803.     CARD8    firstType;
  804.     CARD8    nTypes;
  805.     KeyCode    firstKeySym;
  806.     CARD8    nKeySyms;
  807.     KeyCode    firstKeyAction;
  808.     CARD8    nKeyActions;
  809.     KeyCode    firstKeyBehavior;
  810.     CARD8    nKeyBehaviors;
  811.     CARD16    virtualMods B16;
  812.     KeyCode    firstKeyExplicit;
  813.     CARD8    nKeyExplicit;
  814.     CARD32    pad2 B32;
  815.     CARD32    pad3 B32;
  816. } xkbMapNotify;
  817. #define    sz_xkbMapNotify    32
  818.  
  819. typedef struct _xkbControlsNotify {
  820.     BYTE    type;
  821.     BYTE    xkbType;
  822.     CARD16    sequenceNumber B16;
  823.     Time    time B32;
  824.     CARD8    deviceID;
  825.     CARD8    pad1;
  826.     CARD16    pad2 B16;
  827.     CARD32    changedControls B32;
  828.     CARD32    enabledControls B32;
  829.     CARD32    enabledControlChanges B32;
  830.     KeyCode    keycode;
  831.     CARD8    eventType;
  832.     CARD8    requestMajor;
  833.     CARD8    requestMinor;
  834.     CARD32    pad3 B32;
  835. } xkbControlsNotify;
  836. #define    sz_xkbControlsNotify    32
  837.  
  838. typedef struct _xkbIndicatorNotify {
  839.     BYTE    type;
  840.     BYTE    xkbType;
  841.     CARD16    sequenceNumber B16;
  842.     Time    time B32;
  843.     CARD8    deviceID;
  844.     CARD8    pad1;
  845.     CARD16    pad2 B16;
  846.     CARD32    stateChanged B32;
  847.     CARD32    state B32;
  848.     CARD32    mapChanged B32;
  849.     CARD32    pad3 B32;
  850.     CARD32    pad4 B32;
  851. } xkbIndicatorNotify;
  852. #define    sz_xkbIndicatorNotify    32
  853.  
  854. typedef struct _xkbBellNotify {
  855.     BYTE    type;
  856.     BYTE    xkbType;
  857.     CARD16    sequenceNumber B16;
  858.     Time    time B32;
  859.     CARD8    deviceID;
  860.     CARD8    bellClass;
  861.     CARD8    bellID;
  862.     CARD8    percent;
  863.     CARD16    pitch B16;
  864.     CARD16    duration B16;
  865.     Atom    name B32;
  866.     Window    window B32;
  867.     CARD32    pad1 B32;
  868.     CARD32    pad2 B32;
  869. } xkbBellNotify;
  870. #define    sz_xkbBellNotify    32
  871.  
  872. typedef struct _xkbSlowKeyNotify {
  873.     BYTE    type;
  874.     BYTE    xkbType;
  875.     CARD16    sequenceNumber B16;
  876.     Time    time B32;
  877.     CARD8    deviceID;
  878.     CARD8    slowKeyState;
  879.     KeyCode    keycode;
  880.     CARD8    pad1;
  881.     CARD16    delay B16;
  882.     CARD16    pad2 B16;
  883.     CARD32    pad3 B32;
  884.     CARD32    pad4 B32;
  885.     CARD32    pad5 B32;
  886.     CARD32    pad6 B32;
  887. } xkbSlowKeyNotify;
  888. #define    sz_xkbSlowKeyNotify    32
  889.  
  890. typedef struct _xkbNamesNotify {
  891.     BYTE    type;
  892.     BYTE    xkbType;
  893.     CARD16    sequenceNumber B16;
  894.     Time    time B32;
  895.     CARD8    deviceID;
  896.     CARD8    pad1;
  897.     CARD16    changed B16;
  898.     CARD8    firstType;
  899.     CARD8    nTypes;
  900.     CARD8    firstLevelName;
  901.     CARD8    nLevelNames;
  902.     CARD8    firstRadioGroup;
  903.     CARD8    nRadioGroups;
  904.     CARD8    nCharSets;
  905.     CARD8    changedMods;
  906.     CARD16    changedVirtualMods B16;
  907.     CARD16    pad2 B16;
  908.     CARD32    changedIndicators B32;
  909.     CARD32    pad3 B32;
  910. } xkbNamesNotify;
  911. #define    sz_xkbNamesNotify    32
  912.  
  913. typedef struct _xkbCompatMapNotify {
  914.     BYTE    type;
  915.     BYTE    xkbType;
  916.     CARD16    sequenceNumber B16;
  917.     Time    time B32;
  918.     CARD8    deviceID;
  919.     CARD8    changedMods;
  920.     CARD16    changedVirtualMods B16;
  921.     CARD16    firstSI B16;
  922.     CARD16    nSI B16;
  923.     CARD16    nTotalSI B16;
  924.     CARD16    pad1 B16;
  925.     CARD32    pad2 B32;
  926.     CARD32    pad3 B32;
  927.     CARD32    pad4 B32;
  928. } xkbCompatMapNotify;
  929. #define sz_xkbCompatMapNotify    32
  930.  
  931. typedef struct _xkbAlternateSymsNotify {
  932.     BYTE    type;
  933.     BYTE    xkbType;
  934.     CARD16    sequenceNumber B16;
  935.     Time    time B32;
  936.     CARD8    deviceID;
  937.     CARD8    altSymsID;
  938.     KeyCode    firstKey;
  939.     CARD8    nKeys;
  940.     CARD32    pad2 B32;
  941.     CARD32    pad3 B32;
  942.     CARD32    pad4 B32;
  943.     CARD32    pad5 B32;
  944.     CARD32    pad6 B32;
  945. } xkbAlternateSymsNotify;
  946. #define    sz_xkbAlternateSymsNotify    32
  947.  
  948. typedef struct _xkbActionMessage {
  949.     BYTE    type;
  950.     BYTE    xkbType;
  951.     CARD16    sequenceNumber B16;
  952.     Time    time B32;
  953.     CARD8    deviceID;
  954.     KeyCode    keycode;
  955.     BOOL    press;
  956.     BOOL    keyEventFollows;
  957.     CARD8    message[8];
  958.     CARD32    pad1 B32;
  959.     CARD32    pad2 B32;
  960.     CARD32    pad3 B32;
  961. } xkbActionMessage;
  962. #define    sz_xkbActionMessage        32
  963.  
  964. typedef struct _xkbEvent {
  965.     union {
  966.     xkbAnyEvent        any;
  967.     xkbStateNotify        state;
  968.     xkbMapNotify        map;
  969.     xkbControlsNotify    ctrls;
  970.     xkbIndicatorNotify    indicators;
  971.     xkbBellNotify        bell;
  972.     xkbSlowKeyNotify    slowkey;
  973.     xkbNamesNotify        names;
  974.     xkbCompatMapNotify    compat;
  975.     xkbAlternateSymsNotify    altSyms;
  976.     xkbActionMessage    message;
  977.     } u;
  978. } xkbEvent;
  979. #define sz_xkbEvent    32
  980.  
  981. #undef Window
  982. #undef Atom
  983. #undef Time
  984. #undef KeyCode
  985. #undef KeySym
  986.  
  987. #endif /* _XKBPROTO_H_ */
  988.